package com.lili.collection.core.context;

import com.lili.collection.core.runner.StageRunner;

/**
 * 交换上下文
 *
 * @author lili
 * @date 2023/3/9 0:35
 */
public interface ExchangeStageContext {
    /**
     * 拿取阶段上下文，获取后会从原位置移除
     */
    StageContext take(StageRunner.StageType stageType);

    /**
     * 放置阶段上下文
     */
    void put(StageRunner.StageType stageType, StageContext stageContext);

    /**
     * 窥探阶段上下文，获取后不会从原位置移除
     */
    StageContext peek(StageRunner.StageType stageType);

    void clear();
}
